package com.example.config;

import com.example.service.ChatSessionService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * 定时任务配置类
 * 负责系统的定期维护任务
 */
@Slf4j
@Component
@RequiredArgsConstructor
public class ScheduledTasks {

    private final ChatSessionService chatSessionService;

    /**
     * 清理过期的AI会话
     * 每小时执行一次，清理过期的会话引用
     */
    @Scheduled(fixedRate = 3600000) // 1小时 = 3600000毫秒
    public void cleanupExpiredChatSessions() {
        try {
            log.info("开始清理过期的AI会话...");
            int cleanedCount = chatSessionService.cleanupExpiredSessions();
            log.info("AI会话清理完成，清理了 {} 个过期会话引用", cleanedCount);
        } catch (Exception e) {
            log.error("清理AI会话时发生错误", e);
        }
    }

    /**
     * 系统健康检查
     * 每30分钟执行一次
     */
    @Scheduled(fixedRate = 1800000) // 30分钟 = 1800000毫秒
    public void systemHealthCheck() {
        try {
            log.debug("执行系统健康检查...");
            // 这里可以添加其他系统健康检查逻辑
            // 比如检查Redis连接、数据库连接等
            log.debug("系统健康检查完成");
        } catch (Exception e) {
            log.error("系统健康检查时发生错误", e);
        }
    }
} 